﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DotBusiness.Models;

namespace DotLink.Controllers
{
    public class AtendimentoController
    {
        #region Construtores
        #endregion

        #region Propriedades
        private int IdPedido;
        #endregion

        #region Métodos
        public MProdutoPedido[] adicionarProdutoPedido(int IdProduto, int IdPedido, int qtd, bool delivery=false)
        {
            ProdutoPedido pp = new ProdutoPedido();
            pp.IdPedido = IdPedido;
            pp.IdProduto = IdProduto;
            pp.Quantidade = qtd;
            pp.Delivery = delivery;

            this.IdPedido = IdPedido;

            Bag.L_ProdutosPedidos.Add(pp);
            return Bag.MProdutosPedidos_Array(IdPedido, delivery);
        }

        public Pedido adicionarPedido(bool delivery, string entregador, string endereco, string tpPagamento) {
            Pedido p = new Pedido();
            p.Delivery = delivery;
            p.Registro = DateTime.Now;
            p.Entregador = entregador;
            p.Endereco = endereco;
            p.FormaDePagamento = tpPagamento;            

            if (delivery)
            {
                Bag.L_Delivery.Add(p);
                IdPedido = Bag.L_Delivery.Identity;
            }
            else
            {
                Bag.L_Locais.Add(p);
                IdPedido = Bag.L_Locais.Identity; 
            }
            return p;
        }

        public MProdutoPedido[] listarProdutosPedidos(int IdPedido, bool delivery)
        {
            return Bag.MProdutosPedidos_Array(IdPedido, delivery);
        }

        public dynamic[] listarPedidos(bool delivery) {
            if (delivery)
            {
                return Bag.L_Delivery_Array();
            }
            return Bag.L_Locais_Array();
        }

        public dynamic[] excluirPedido(dynamic pedidos, bool delivery, int idPedido = -1)
        {

            if (idPedido < 0)
            {
                pedidos.Remove(Bag.L_Delivery.Index);
            }
            else
            {
                pedidos.Remove(idPedido);
            }
            if (delivery)
            {
                return Bag.L_Delivery_Array();
            }
            return Bag.L_Locais_Array();
        }
        public dynamic[] fechaPedido(dynamic pedidos, bool delivery, int idPedido = -1)
        {
            if (idPedido < 0)
            {
                pedidos.Remove(Bag.L_Delivery.Index);
            }
            else
            {
                pedidos.Remove(idPedido);
            }
            if (delivery)
            {
                return Bag.L_Delivery_Array();
            }
            return Bag.L_Locais_Array();
        }
        #endregion

    }
}
